﻿using System;
using System.Collections.Generic;
using CID.Domain.Development;
using CID.Domain.Operations;
using CID.Domain.Users;

namespace CID.Domain.Audit
{
    public interface IReleaseDeploymentLog : IEntity
    {
        Guid DeploymentUniqueIdentifier { get; }
        string Details { get; }
        DateTime? StartTimestamp { get; }
        DateTime? EndTimestamp { get; }
        DeploymentStatus Status { get; }

        IEnvironment Environment { get; }
        IRelease Release { get; }
        IUser Responsible { get; }
        IEnumerable<IVersionDeploymentLog> Versions { get; }

        void Start();
        void End(bool successfull);
        void AppendDetails(string detailsMessage);
    }
}
